<?php
$map         = 'fotoalbum';
$afbeeldingen    = array();

$hoogte_klein     = 120;
$breedte_klein     = 160;

$hoogte_groot     = 400;
$breedte_groot     = 700;

$perpagina    = 20;

if(isset($_GET['album']) && !empty($_GET['album']))
{
    $tmp = explode('/',$_GET['album']);
    
    if($tmp[0] == $map)
    {
    $map = str_replace(array('.', '\\', ':'), '', $_GET['album']);
    }    
}

if(isset($_GET['paginanr']) && !empty($_GET['paginanr']) && ctype_digit($_GET['paginanr']))
{
    $paginanr = $_GET['paginanr'];
}else{
    $paginanr = 1;
}

if(isset($_GET['afbeelding']) && !empty($_GET['afbeelding']))
{
    $afbeelding = $_GET['afbeelding'];
}else{
    $afbeelding = NULL;
}

function thumbnail($afbeelding, $type)
{
    
    $map         = $afbeelding['dirname'];
    $bestandsnaam     = $afbeelding['basename'];
    
    list($type, $hoogte, $breedte) = $type;
    list($breedte_origineel, $hoogte_origineel, $extensie) = getimagesize($map.'/'.$bestandsnaam);
    
    if(!is_dir($map.'/thumbs/'))
    {
    mkdir($map.'/thumbs/', 0777);
    chmod($map.'/thumbs/', 0777);
    }
    
    if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte))
    {
    $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
    }else{
    $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
    }

    $afbeelding = imagecreatetruecolor($breedte, $hoogte);

    switch($extensie) 
    {
    case 1:
        //gif
        $afbeelding_origineel = imagecreatefromgif($map.'/'.$bestandsnaam);
        imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
        imagegif($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
    break;
    case 2:
        //jpg
        $afbeelding_origineel = imagecreatefromjpeg($map.'/'.$bestandsnaam);
        imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
        imagejpeg($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam, 80);
    break;
    case 3:
        //png
        $afbeelding_origineel = imagecreatefrompng($map.'/'.$bestandsnaam);
        
        $background = imagecolorallocate($afbeelding, 0, 0, 0);
        imagecolortransparent($afbeelding, $background); // make the new temp image all transparent
        imagealphablending($afbeelding, false); // turn off the alpha blending to keep the alpha channel
        imagesavealpha($afbeelding, true);
        imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
        imagepng($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
    break;
    }
    
    chmod($map.'/thumbs/'.$type.'_'.$bestandsnaam, 0777);
    return TRUE;
}
echo '<ul class="breadcrumb">'.PHP_EOL;
$tmp = NULL;
foreach(explode('/',$map) as $tmp2)
{    
    echo '<li><a href="?m=fotoalbum&amp;album='.$tmp.$tmp2.'">'.ucfirst($tmp2).'</a> <span class="divider">/</span></li>';
    $tmp = $tmp.$tmp2.'/';
}

echo '<br><br>'.PHP_EOL;

if(!$bestanden = glob($map.'/*.*'))
{
    $bestanden = array();
}

foreach($bestanden as $bestand)
{
    $gegevens     = getimagesize($bestand);
    $extensie     = $gegevens['mime'];

    if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
    {
    $afbeeldingen[] = $bestand;
    }    
}

$aantalfotos = count($afbeeldingen);

if(isset($afbeelding))
{
    foreach($afbeeldingen as $id => $naam)
    {
    if(basename($naam) == $afbeelding)
    {
        $fotonr = $id;
    }
    }
    
    if(isset($fotonr))
    {
    $afbeelding = pathinfo($afbeeldingen[$fotonr]);
    
    if($fotonr > 0)
    {
        $vorige_afbeelding     = pathinfo($afbeeldingen[$fotonr-1]);
        
        echo '<a href="?m=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$vorige_afbeelding['basename'].'" title="Ga naar foto '.$vorige_afbeelding['basename'].'">&lt;&lt; Vorige</a>';
    }else{
        echo '&lt;&lt; Vorige';
    }
    
    echo '&nbsp;&nbsp;&nbsp; Foto '.($fotonr +1).' van '.$aantalfotos.' &nbsp;&nbsp;&nbsp;';
    
    if($fotonr < $aantalfotos -1)
    {
        $volgende_afbeelding = pathinfo($afbeeldingen[$fotonr+1]);
        
        echo '<a href="?m=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$volgende_afbeelding['basename'].'" title="Ga naar foto '.$volgende_afbeelding['basename'].'">Volgende &gt;&gt;</a><br>';
    }else{
        echo 'Volgende &gt;&gt;<br>'.PHP_EOL;
    }
    
    if(!file_exists($afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename']))
    {
        if(thumbnail($afbeelding, array('groot', $hoogte_groot, $breedte_groot)))
        {
        echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
        }
    }else{
        echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
    }
    }else{
    echo '<p>Sorry, deze foto bestaat niet!</p>';
    }
}else{
    
    if(!$mappen = glob($map.'/*', GLOB_ONLYDIR))
    {
    $mappen = array();
    }
    ?>
	<ul class="thumbnails">
  
	<?php
	
    foreach($mappen as $album)
    {
    if(basename($album) != 'thumbs')
    {
        // Nieuw Nieuw Nieuw Nieuw //
      $exts = 'jpg jpeg png gif';
      $files = array();
      $i = - 1;
      if ('' == $album)
        $album = './';
      $handle = opendir($album);
      $exts = explode(' ', $exts);
      while (false !== ($file = readdir($handle))) {
        foreach ($exts as $ext) {
          if (preg_match('/\.' . $ext . '$/i', $file, $test)) {
            $files[] = $file;
            ++$i;
          }
        }
      }
      closedir($handle);
      mt_srand((double) microtime() * 1000000);
      $rand = mt_rand(0, $i);
// Eind Eind Eind Eind Eind /
		echo '<li class="span2">';
      echo '<a href="?m=fotoalbum&album=' . $album . '" class="thumbnail"><div class="groote"><center><img src="' . $album . '/thumbs/klein_' . $files['1'] . '" title="' . $afbeelding['basename'] . '" alt="' . $afbeelding['basename'] . '" class="thumbs"></div></center></a><div class="caption"><center><h5>' . ucfirst(basename($album)) . '</h5></center></div></li>' . PHP_EOL;


    }
    }
	
	?>
	
	  

<?php

	echo '<ul class="pager">';
	if($aantalfotos > $perpagina)
    {
    if ($paginanr > 1)
    {
        echo '<li class="previous"><a href="?m=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'">&lt;&lt; Vorige</a></li>';
    }else{
        echo '<li class="previous disabled"><a>&lt;&lt; Vorige</a></li>';
    }
    
    echo '&nbsp;&nbsp;&nbsp; Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' &nbsp;&nbsp;&nbsp;';
    
    if ($paginanr < ceil(($aantalfotos)/$perpagina))
    {
        echo '<li class="next"><a href="?m=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende &gt;&gt;</a></li>';
    }else{
        echo '<li class="next disabled"><a> Volgende &gt;&gt;</a></li>'.PHP_EOL;
    }
    }
	echo '</ul>';
    
    for($fotonr = (($paginanr -1) * $perpagina); $fotonr <= ((($paginanr -1) * $perpagina) + ($perpagina - 1)) && $fotonr < count($bestanden); $fotonr += 1)
    {
    $afbeelding = pathinfo($afbeeldingen[$fotonr]);
    
    if(!file_exists($afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename']))
    {
        if(thumbnail($afbeelding, array('klein', $hoogte_klein, $breedte_klein)))
        {
        echo '<li class="span2"><a href="?m=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'" class="thumbnail"><div class="groote"><center><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></center></div></a></li>'.PHP_EOL;
        }
    }else{
        echo '<li class="span2"><a href="?m=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'" class="thumbnail"><div class="groote"><center><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></center></div></a></li>'.PHP_EOL;
    }
    }
?>
</ul>
	<?php
	echo '<ul class="pager">';
	if($aantalfotos > $perpagina)
    {
    if ($paginanr > 1)
    {
        echo '<li class="previous"><a href="?m=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'">&lt;&lt; Vorige</a></li>';
    }else{
        echo '<li class="previous disabled"><a>&lt;&lt; Vorige</a></li>';
    }
    
    echo '&nbsp;&nbsp;&nbsp; Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' &nbsp;&nbsp;&nbsp;';
    
    if ($paginanr < ceil(($aantalfotos)/$perpagina))
    {
        echo '<li class="next"><a href="?m=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende &gt;&gt;</a></li>';
    }else{
        echo '<li class="next disabled"><a> Volgende &gt;&gt;</a></li>'.PHP_EOL;
    }
    }
	echo '</ul>';
}
?>